home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / stk-3.002 / stk-3 / STk-3.1 / Tk / generic / tk.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-09  |  52.0 KB  |  1,345 lines

  1. /*
  2.  * tk.h --
  3.  *
  4.  *    Declarations for Tk-related things that are visible
  5.  *    outside of the Tk module itself.
  6.  *
  7.  * Copyright (c) 1989-1994 The Regents of the University of California.
  8.  * Copyright (c) 1994 The Australian National University.
  9.  * Copyright (c) 1994-1996 Sun Microsystems, Inc.
  10.  *
  11.  * See the file "license.terms" for information on usage and redistribution
  12.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  13.  *
  14.  * SCCS: @(#) tk.h 1.184 96/03/18 13:35:54
  15.  */
  16.  
  17. #ifndef _TK
  18. #define _TK
  19.  
  20. #define TK_VERSION "4.1"
  21. #define TK_MAJOR_VERSION 4
  22. #define TK_MINOR_VERSION 1
  23.  
  24. #ifndef _TCL
  25. #include <tcl.h>
  26. #endif
  27. #ifndef _XLIB_H
  28. #ifdef MAC_TCL
  29. #include <Xlib.h>
  30. #include <X.h>
  31. #else
  32. #include <X11/Xlib.h>
  33. #endif
  34. #endif
  35. #ifdef __STDC__
  36. #include <stddef.h>
  37. #endif
  38.  
  39. #ifdef STk_CODE
  40.    /* Don't include the following code when compiling the interpreter */
  41. #  ifndef _STK_H
  42. #    define SCM void *    /* Tk code never manipulate SCM object directly */
  43. #    include <tk-glue.h>
  44. #  endif
  45. #endif
  46.  
  47. /*
  48.  * Decide whether or not to use input methods.
  49.  */
  50.  
  51. #ifdef XNQueryInputStyle
  52. #define TK_USE_INPUT_METHODS
  53. #endif
  54.  
  55. /*
  56.  * Dummy types that are used by clients:
  57.  */
  58.  
  59. typedef struct Tk_BindingTable_ *Tk_BindingTable;
  60. typedef struct Tk_Canvas_ *Tk_Canvas;
  61. typedef struct Tk_Cursor_ *Tk_Cursor;
  62. typedef struct Tk_ErrorHandler_ *Tk_ErrorHandler;
  63. typedef struct Tk_Image__ *Tk_Image;
  64. typedef struct Tk_ImageMaster_ *Tk_ImageMaster;
  65. typedef struct Tk_Window_ *Tk_Window;
  66. typedef struct Tk_3DBorder_ *Tk_3DBorder;
  67.  
  68. /*
  69.  * Additional types exported to clients.
  70.  */
  71.  
  72. typedef char *Tk_Uid;
  73.  
  74. /*
  75.  * Structure used to specify how to handle argv options.
  76.  */
  77.  
  78. typedef struct {
  79.     char *key;        /* The key string that flags the option in the
  80.              * argv array. */
  81.     int type;        /* Indicates option type;  see below. */
  82.     char *src;        /* Value to be used in setting dst;  usage
  83.              * depends on type. */
  84.     char *dst;        /* Address of value to be modified;  usage
  85.              * depends on type. */
  86.     char *help;        /* Documentation message describing this option. */
  87. } Tk_ArgvInfo;
  88.  
  89. /*
  90.  * Legal values for the type field of a Tk_ArgvInfo: see the user
  91.  * documentation for details.
  92.  */
  93.  
  94. #define TK_ARGV_CONSTANT        15
  95. #define TK_ARGV_INT            16
  96. #define TK_ARGV_STRING            17
  97. #define TK_ARGV_UID            18
  98. #define TK_ARGV_REST            19
  99. #define TK_ARGV_FLOAT            20
  100. #define TK_ARGV_FUNC            21
  101. #define TK_ARGV_GENFUNC            22
  102. #define TK_ARGV_HELP            23
  103. #define TK_ARGV_CONST_OPTION        24
  104. #define TK_ARGV_OPTION_VALUE        25
  105. #define TK_ARGV_OPTION_NAME_VALUE    26
  106. #define TK_ARGV_END            27
  107.  
  108. /*
  109.  * Flag bits for passing to Tk_ParseArgv:
  110.  */
  111.  
  112. #define TK_ARGV_NO_DEFAULTS        0x1
  113. #define TK_ARGV_NO_LEFTOVERS        0x2
  114. #define TK_ARGV_NO_ABBREV        0x4
  115. #define TK_ARGV_DONT_SKIP_FIRST_ARG    0x8
  116.  
  117. /*
  118.  * Structure used to describe application-specific configuration
  119.  * options:  indicates procedures to call to parse an option and
  120.  * to return a text string describing an option.
  121.  */
  122.  
  123. typedef int (Tk_OptionParseProc) _ANSI_ARGS_((ClientData clientData,
  124.     Tcl_Interp *interp, Tk_Window tkwin, char *value, char *widgRec,
  125.     int offset));
  126. typedef char *(Tk_OptionPrintProc) _ANSI_ARGS_((ClientData clientData,
  127.     Tk_Window tkwin, char *widgRec, int offset,
  128.     Tcl_FreeProc **freeProcPtr));
  129.  
  130. typedef struct Tk_CustomOption {
  131.     Tk_OptionParseProc *parseProc;    /* Procedure to call to parse an
  132.                      * option and store it in converted
  133.                      * form. */
  134.     Tk_OptionPrintProc *printProc;    /* Procedure to return a printable
  135.                      * string describing an existing
  136.                      * option. */
  137.     ClientData clientData;        /* Arbitrary one-word value used by
  138.                      * option parser:  passed to
  139.                      * parseProc and printProc. */
  140. } Tk_CustomOption;
  141.  
  142. /*
  143.  * Structure used to specify information for Tk_ConfigureWidget.  Each
  144.  * structure gives complete information for one option, including
  145.  * how the option is specified on the command line, where it appears
  146.  * in the option database, etc.
  147.  */
  148.  
  149. typedef struct Tk_ConfigSpec {
  150.     int type;            /* Type of option, such as TK_CONFIG_COLOR;
  151.                  * see definitions below.  Last option in
  152.                  * table must have type TK_CONFIG_END. */
  153.     char *argvName;        /* Switch used to specify option in argv.
  154.                  * NULL means this spec is part of a group. */
  155.     char *dbName;        /* Name for option in option database. */
  156.     char *dbClass;        /* Class for option in database. */
  157.     char *defValue;        /* Default value for option if not
  158.                  * specified in command line or database. */
  159.     int offset;            /* Where in widget record to store value;
  160.                  * use Tk_Offset macro to generate values
  161.                  * for this. */
  162.     int specFlags;        /* Any combination of the values defined
  163.                  * below;  other bits are used internally
  164.                  * by tkConfig.c. */
  165.     Tk_CustomOption *customPtr;    /* If type is TK_CONFIG_CUSTOM then this is
  166.                  * a pointer to info about how to parse and
  167.                  * print the option.  Otherwise it is
  168.                  * irrelevant. */
  169. } Tk_ConfigSpec;
  170.  
  171. /*
  172.  * Type values for Tk_ConfigSpec structures.  See the user
  173.  * documentation for details.
  174.  */
  175.  
  176. #define TK_CONFIG_BOOLEAN    1
  177. #define TK_CONFIG_INT        2
  178. #define TK_CONFIG_DOUBLE    3
  179. #define TK_CONFIG_STRING    4
  180. #define TK_CONFIG_UID        5
  181. #define TK_CONFIG_COLOR        6
  182. #define TK_CONFIG_FONT        7
  183. #define TK_CONFIG_BITMAP    8
  184. #define TK_CONFIG_BORDER    9
  185. #define TK_CONFIG_RELIEF    10
  186. #define TK_CONFIG_CURSOR    11
  187. #define TK_CONFIG_ACTIVE_CURSOR    12
  188. #define TK_CONFIG_JUSTIFY    13
  189. #define TK_CONFIG_ANCHOR    14
  190. #define TK_CONFIG_SYNONYM    15
  191. #define TK_CONFIG_CAP_STYLE    16
  192. #define TK_CONFIG_JOIN_STYLE    17
  193. #define TK_CONFIG_PIXELS    18
  194. #define TK_CONFIG_MM        19
  195. #define TK_CONFIG_WINDOW    20
  196. #define TK_CONFIG_CUSTOM    21
  197. #ifdef STk_CODE
  198. #  define TK_CONFIG_CLOSURE    22
  199. #  define TK_CONFIG_SINT    23 /* value is an int but default is a string */
  200. #  define TK_CONFIG_SBOOLEAN    24 /* value is a boolean but default is a string */
  201. #  define TK_CONFIG_MENU    25 /* only for -menu in a menubutton */
  202. #  define TK_CONFIG_BSTRING    26 /* Value is a string but default is a boolean */
  203. #  define TK_CONFIG_END        30
  204. #else
  205. #  define TK_CONFIG_END        22
  206. #endif
  207.  
  208. /*
  209.  * Macro to use to fill in "offset" fields of Tk_ConfigInfos.
  210.  * Computes number of bytes from beginning of structure to a
  211.  * given field.
  212.  */
  213.  
  214. #ifdef offsetof
  215. #define Tk_Offset(type, field) ((int) offsetof(type, field))
  216. #else
  217. #define Tk_Offset(type, field) ((int) ((char *) &((type *) 0)->field))
  218. #endif
  219.  
  220. /*
  221.  * Possible values for flags argument to Tk_ConfigureWidget:
  222.  */
  223.  
  224. #define TK_CONFIG_ARGV_ONLY    1
  225.  
  226. /*
  227.  * Possible flag values for Tk_ConfigInfo structures.  Any bits at
  228.  * or above TK_CONFIG_USER_BIT may be used by clients for selecting
  229.  * certain entries.  Before changing any values here, coordinate with
  230.  * tkConfig.c (internal-use-only flags are defined there).
  231.  */
  232.  
  233. #define TK_CONFIG_COLOR_ONLY        1
  234. #define TK_CONFIG_MONO_ONLY        2
  235. #define TK_CONFIG_NULL_OK        4
  236. #define TK_CONFIG_DONT_SET_DEFAULT    8
  237. #define TK_CONFIG_OPTION_SPECIFIED    0x10
  238. #define TK_CONFIG_USER_BIT        0x100
  239.  
  240. /*
  241.  * Enumerated type for describing actions to be taken in response
  242.  * to a restrictProc established by Tk_RestrictEvents.
  243.  */
  244.  
  245. typedef enum {
  246.     TK_DEFER_EVENT, TK_PROCESS_EVENT, TK_DISCARD_EVENT
  247. } Tk_RestrictAction;
  248.  
  249. /*
  250.  * Priority levels to pass to Tk_AddOption:
  251.  */
  252.  
  253. #define TK_WIDGET_DEFAULT_PRIO    20
  254. #define TK_STARTUP_FILE_PRIO    40
  255. #define TK_USER_DEFAULT_PRIO    60
  256. #define TK_INTERACTIVE_PRIO    80
  257. #define TK_MAX_PRIO        100
  258.  
  259. /*
  260.  * Relief values returned by Tk_GetRelief:
  261.  */
  262.  
  263. #define TK_RELIEF_RAISED    1
  264. #define TK_RELIEF_FLAT        2
  265. #define TK_RELIEF_SUNKEN    4
  266. #define TK_RELIEF_GROOVE    8
  267. #define TK_RELIEF_RIDGE        16
  268.  
  269. /*
  270.  * "Which" argument values for Tk_3DBorderGC:
  271.  */
  272.  
  273. #define TK_3D_FLAT_GC        1
  274. #define TK_3D_LIGHT_GC        2
  275. #define TK_3D_DARK_GC        3
  276.  
  277. /*
  278.  * Special EnterNotify/LeaveNotify "mode" for use in events
  279.  * generated by tkShare.c.  Pick a high enough value that it's
  280.  * unlikely to conflict with existing values (like NotifyNormal)
  281.  * or any new values defined in the future.
  282.  */
  283.  
  284. #define TK_NOTIFY_SHARE        20
  285.  
  286. /*
  287.  * Enumerated type for describing a point by which to anchor something:
  288.  */
  289.  
  290. typedef enum {
  291.     TK_ANCHOR_N, TK_ANCHOR_NE, TK_ANCHOR_E, TK_ANCHOR_SE,
  292.     TK_ANCHOR_S, TK_ANCHOR_SW, TK_ANCHOR_W, TK_ANCHOR_NW,
  293.     TK_ANCHOR_CENTER
  294. } Tk_Anchor;
  295.  
  296. /*
  297.  * Enumerated type for describing a style of justification:
  298.  */
  299.  
  300. typedef enum {
  301.     TK_JUSTIFY_LEFT, TK_JUSTIFY_RIGHT, TK_JUSTIFY_CENTER
  302. } Tk_Justify;
  303.  
  304. /*
  305.  * Each geometry manager (the packer, the placer, etc.) is represented
  306.  * by a structure of the following form, which indicates procedures
  307.  * to invoke in the geometry manager to carry out certain functions.
  308.  */
  309.  
  310. typedef void (Tk_GeomRequestProc) _ANSI_ARGS_((ClientData clientData,
  311.     Tk_Window tkwin));
  312. typedef void (Tk_GeomLostSlaveProc) _ANSI_ARGS_((ClientData clientData,
  313.     Tk_Window tkwin));
  314.  
  315. typedef struct Tk_GeomMgr {
  316.     char *name;            /* Name of the geometry manager (command
  317.                  * used to invoke it, or name of widget
  318.                  * class that allows embedded widgets). */
  319.     Tk_GeomRequestProc *requestProc;
  320.                 /* Procedure to invoke when a slave's
  321.                  * requested geometry changes. */
  322.     Tk_GeomLostSlaveProc *lostSlaveProc;
  323.                 /* Procedure to invoke when a slave is
  324.                  * taken away from one geometry manager
  325.                  * by another.  NULL means geometry manager
  326.                  * doesn't care when slaves are lost. */
  327. } Tk_GeomMgr;
  328.  
  329. /*
  330.  * Result values returned by Tk_GetScrollInfo:
  331.  */
  332.  
  333. #define TK_SCROLL_MOVETO    1
  334. #define TK_SCROLL_PAGES        2
  335. #define TK_SCROLL_UNITS        3
  336. #define TK_SCROLL_ERROR        4
  337.  
  338. /*---------------------------------------------------------------------------
  339.  *
  340.  * Extensions to the X event set
  341.  *
  342.  *---------------------------------------------------------------------------
  343.  */
  344.  
  345. #define ActivateNotify        (LASTEvent)
  346. #define DeactivateNotify    (LASTEvent + 1)
  347. #define TK_LASTEVENT        (LASTEvent + 2)
  348.  
  349. #define ActivateMask        (1L << 30)
  350.  
  351. typedef struct {
  352.     int type;
  353.     unsigned long serial;   /* # of last request processed by server */
  354.     Bool send_event;        /* True if this came from a SendEvent request */
  355.     Display *display;        /* Display the event was read from */
  356.     Window window;        /* Window in which event occurred. */
  357. } XActivateDeactivateEvent;
  358. typedef XActivateDeactivateEvent XActivateEvent;
  359. typedef XActivateDeactivateEvent XDeactivateEvent;
  360.  
  361. /*
  362.  *--------------------------------------------------------------
  363.  *
  364.  * Macros for querying Tk_Window structures.  See the
  365.  * manual entries for documentation.
  366.  *
  367.  *--------------------------------------------------------------
  368.  */
  369.  
  370. #define Tk_Display(tkwin)        (((Tk_FakeWin *) (tkwin))->display)
  371. #define Tk_ScreenNumber(tkwin)        (((Tk_FakeWin *) (tkwin))->screenNum)
  372. #define Tk_Screen(tkwin)        (ScreenOfDisplay(Tk_Display(tkwin), \
  373.     Tk_ScreenNumber(tkwin)))
  374. #define Tk_Depth(tkwin)            (((Tk_FakeWin *) (tkwin))->depth)
  375. #define Tk_Visual(tkwin)        (((Tk_FakeWin *) (tkwin))->visual)
  376. #define Tk_WindowId(tkwin)        (((Tk_FakeWin *) (tkwin))->window)
  377. #define Tk_PathName(tkwin)         (((Tk_FakeWin *) (tkwin))->pathName)
  378. #define Tk_Name(tkwin)            (((Tk_FakeWin *) (tkwin))->nameUid)
  379. #define Tk_Class(tkwin)         (((Tk_FakeWin *) (tkwin))->classUid)
  380. #define Tk_X(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.x)
  381. #define Tk_Y(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.y)
  382. #define Tk_Width(tkwin)            (((Tk_FakeWin *) (tkwin))->changes.width)
  383. #define Tk_Height(tkwin) \
  384.     (((Tk_FakeWin *) (tkwin))->changes.height)
  385. #define Tk_Changes(tkwin)        (&((Tk_FakeWin *) (tkwin))->changes)
  386. #define Tk_Attributes(tkwin)        (&((Tk_FakeWin *) (tkwin))->atts)
  387. #define Tk_IsMapped(tkwin) \
  388.     (((Tk_FakeWin *) (tkwin))->flags & TK_MAPPED)
  389. #define Tk_IsTopLevel(tkwin) \
  390.     (((Tk_FakeWin *) (tkwin))->flags & TK_TOP_LEVEL)
  391. #define Tk_ReqWidth(tkwin)        (((Tk_FakeWin *) (tkwin))->reqWidth)
  392. #define Tk_ReqHeight(tkwin)        (((Tk_FakeWin *) (tkwin))->reqHeight)
  393. #define Tk_InternalBorderWidth(tkwin) \
  394.     (((Tk_FakeWin *) (tkwin))->internalBorderWidth)
  395. #define Tk_Parent(tkwin)        (((Tk_FakeWin *) (tkwin))->parentPtr)
  396. #define Tk_Colormap(tkwin)        (((Tk_FakeWin *) (tkwin))->atts.colormap)
  397.  
  398. /*
  399.  * The structure below is needed by the macros above so that they can
  400.  * access the fields of a Tk_Window.  The fields not needed by the macros
  401.  * are declared as "dummyX".  The structure has its own type in order to
  402.  * prevent applications from accessing Tk_Window fields except using
  403.  * official macros.  WARNING!! The structure definition must be kept
  404.  * consistent with the TkWindow structure in tkInt.h.  If you change one,
  405.  * then change the other.  See the declaration in tkInt.h for
  406.  * documentation on what the fields are used for internally.
  407.  */
  408.  
  409. typedef struct Tk_FakeWin {
  410.     Display *display;
  411.     char *dummy1;
  412.     int screenNum;
  413.     Visual *visual;
  414.     int depth;
  415.     Window window;
  416.     char *dummy2;
  417.     char *dummy3;
  418.     Tk_Window parentPtr;
  419.     char *dummy4;
  420.     char *dummy5;
  421.     char *pathName;
  422.     Tk_Uid nameUid;
  423.     Tk_Uid classUid;
  424.     XWindowChanges changes;
  425.     unsigned int dummy6;
  426.     XSetWindowAttributes atts;
  427.     unsigned long dummy7;
  428.     unsigned int flags;
  429.     char *dummy8;
  430. #ifdef TK_USE_INPUT_METHODS
  431.     XIC dummy9;
  432. #endif /* TK_USE_INPUT_METHODS */
  433.     ClientData *dummy10;
  434.     int dummy11;
  435.     int dummy12;
  436.     char *dummy13;
  437.     char *dummy14;
  438.     ClientData dummy15;
  439.     int reqWidth, reqHeight;
  440.     int internalBorderWidth;
  441.     char *dummy16;
  442.     char *dummy17;
  443. } Tk_FakeWin;
  444.  
  445. /*
  446.  * Flag values for TkWindow (and Tk_FakeWin) structures are:
  447.  *
  448.  * TK_MAPPED:            1 means window is currently mapped,
  449.  *                0 means unmapped.
  450.  * TK_TOP_LEVEL:        1 means this is a top-level window (it
  451.  *                was or will be created as a child of
  452.  *                a root window).
  453.  * TK_ALREADY_DEAD:        1 means the window is in the process of
  454.  *                being destroyed already.
  455.  * TK_NEED_CONFIG_NOTIFY:    1 means that the window has been reconfigured
  456.  *                before it was made to exist.  At the time of
  457.  *                making it exist a ConfigureNotify event needs
  458.  *                to be generated.
  459.  * TK_GRAB_FLAG:        Used to manage grabs.  See tkGrab.c for
  460.  *                details.
  461.  * TK_CHECKED_IC:        1 means we've already tried to get an input
  462.  *                context for this window;  if the ic field
  463.  *                is NULL it means that there isn't a context
  464.  *                for the field.
  465.  * TK_PARENT_DESTROYED:        1 means that the window's parent has already
  466.  *                been destroyed or is in the process of being
  467.  *                destroyed.
  468.  * TK_WM_COLORMAP_WINDOW:    1 means that this window has at some time
  469.  *                appeared in the WM_COLORMAP_WINDOWS property
  470.  *                for its toplevel, so we have to remove it
  471.  *                from that property if the window is
  472.  *                deleted and the toplevel isn't.
  473.  */
  474.  
  475. #define TK_MAPPED        1
  476. #define TK_TOP_LEVEL        2
  477. #define TK_ALREADY_DEAD        4
  478. #define TK_NEED_CONFIG_NOTIFY    8
  479. #define TK_GRAB_FLAG        0x10
  480. #define TK_CHECKED_IC        0x20
  481. #define TK_PARENT_DESTROYED    0x40
  482. #define TK_WM_COLORMAP_WINDOW    0x80
  483.  
  484. /*
  485.  *--------------------------------------------------------------
  486.  *
  487.  * Procedure prototypes and structures used for defining new canvas
  488.  * items:
  489.  *
  490.  *--------------------------------------------------------------
  491.  */
  492.  
  493. /*
  494.  * For each item in a canvas widget there exists one record with
  495.  * the following structure.  Each actual item is represented by
  496.  * a record with the following stuff at its beginning, plus additional
  497.  * type-specific stuff after that.
  498.  */
  499.  
  500. #define TK_TAG_SPACE 3
  501.  
  502. typedef struct Tk_Item  {
  503.     int id;                /* Unique identifier for this item
  504.                      * (also serves as first tag for
  505.                      * item). */
  506.     struct Tk_Item *nextPtr;        /* Next in display list of all
  507.                      * items in this canvas.  Later items
  508.                      * in list are drawn on top of earlier
  509.                      * ones. */
  510.     Tk_Uid staticTagSpace[TK_TAG_SPACE];/* Built-in space for limited # of
  511.                      * tags. */
  512.     Tk_Uid *tagPtr;            /* Pointer to array of tags.  Usually
  513.                      * points to staticTagSpace, but
  514.                      * may point to malloc-ed space if
  515.                      * there are lots of tags. */
  516.     int tagSpace;            /* Total amount of tag space available
  517.                      * at tagPtr. */
  518.     int numTags;            /* Number of tag slots actually used
  519.                      * at *tagPtr. */
  520.     struct Tk_ItemType *typePtr;    /* Table of procedures that implement
  521.                      * this type of item. */
  522.     int x1, y1, x2, y2;            /* Bounding box for item, in integer
  523.                      * canvas units. Set by item-specific
  524.                      * code and guaranteed to contain every
  525.                      * pixel drawn in item.  Item area
  526.                      * includes x1 and y1 but not x2
  527.                      * and y2. */
  528.  
  529.     /*
  530.      *------------------------------------------------------------------
  531.      * Starting here is additional type-specific stuff;  see the
  532.      * declarations for individual types to see what is part of
  533.      * each type.  The actual space below is determined by the
  534.      * "itemInfoSize" of the type's Tk_ItemType record.
  535.      *------------------------------------------------------------------
  536.      */
  537. } Tk_Item;
  538.  
  539. /*
  540.  * Records of the following type are used to describe a type of
  541.  * item (e.g.  lines, circles, etc.) that can form part of a
  542.  * canvas widget.
  543.  */
  544.  
  545. typedef int    Tk_ItemCreateProc _ANSI_ARGS_((Tcl_Interp *interp,
  546.             Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
  547.             char **argv));
  548. typedef int    Tk_ItemConfigureProc _ANSI_ARGS_((Tcl_Interp *interp,
  549.             Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
  550.             char **argv, int flags));
  551. typedef int    Tk_ItemCoordProc _ANSI_ARGS_((Tcl_Interp *interp,
  552.             Tk_Canvas canvas, Tk_Item *itemPtr, int argc,
  553.             char **argv));
  554. typedef void    Tk_ItemDeleteProc _ANSI_ARGS_((Tk_Canvas canvas,
  555.             Tk_Item *itemPtr, Display *display));
  556. typedef void    Tk_ItemDisplayProc _ANSI_ARGS_((Tk_Canvas canvas,
  557.             Tk_Item *itemPtr, Display *display, Drawable dst,
  558.             int x, int y, int width, int height));
  559. typedef double    Tk_ItemPointProc _ANSI_ARGS_((Tk_Canvas canvas,
  560.             Tk_Item *itemPtr, double *pointPtr));
  561. typedef int    Tk_ItemAreaProc _ANSI_ARGS_((Tk_Canvas canvas,
  562.             Tk_Item *itemPtr, double *rectPtr));
  563. typedef int    Tk_ItemPostscriptProc _ANSI_ARGS_((Tcl_Interp *interp,
  564.             Tk_Canvas canvas, Tk_Item *itemPtr, int prepass));
  565. typedef void    Tk_ItemScaleProc _ANSI_ARGS_((Tk_Canvas canvas,
  566.             Tk_Item *itemPtr, double originX, double originY,
  567.             double scaleX, double scaleY));
  568. typedef void    Tk_ItemTranslateProc _ANSI_ARGS_((Tk_Canvas canvas,
  569.             Tk_Item *itemPtr, double deltaX, double deltaY));
  570. typedef int    Tk_ItemIndexProc _ANSI_ARGS_((Tcl_Interp *interp,
  571.             Tk_Canvas canvas, Tk_Item *itemPtr, char *indexString,
  572.             int *indexPtr));
  573. typedef void    Tk_ItemCursorProc _ANSI_ARGS_((Tk_Canvas canvas,
  574.             Tk_Item *itemPtr, int index));
  575. typedef int    Tk_ItemSelectionProc _ANSI_ARGS_((Tk_Canvas canvas,
  576.             Tk_Item *itemPtr, int offset, char *buffer,
  577.             int maxBytes));
  578. typedef void    Tk_ItemInsertProc _ANSI_ARGS_((Tk_Canvas canvas,
  579.             Tk_Item *itemPtr, int beforeThis, char *string));
  580. typedef void    Tk_ItemDCharsProc _ANSI_ARGS_((Tk_Canvas canvas,
  581.             Tk_Item *itemPtr, int first, int last));
  582.  
  583. typedef struct Tk_ItemType {
  584.     char *name;                /* The name of this type of item, such
  585.                      * as "line". */
  586.     int itemSize;            /* Total amount of space needed for
  587.                      * item's record. */
  588.     Tk_ItemCreateProc *createProc;    /* Procedure to create a new item of
  589.                      * this type. */
  590.     Tk_ConfigSpec *configSpecs;        /* Pointer to array of configuration
  591.                      * specs for this type.  Used for
  592.                      * returning configuration info. */
  593.     Tk_ItemConfigureProc *configProc;    /* Procedure to call to change
  594.                      * configuration options. */
  595.     Tk_ItemCoordProc *coordProc;    /* Procedure to call to get and set
  596.                      * the item's coordinates. */
  597.     Tk_ItemDeleteProc *deleteProc;    /* Procedure to delete existing item of
  598.                      * this type. */
  599.     Tk_ItemDisplayProc *displayProc;    /* Procedure to display items of
  600.                      * this type. */
  601.     int alwaysRedraw;            /* Non-zero means displayProc should
  602.                      * be called even when the item has
  603.                      * been moved off-screen. */
  604.     Tk_ItemPointProc *pointProc;    /* Computes distance from item to
  605.                      * a given point. */
  606.     Tk_ItemAreaProc *areaProc;        /* Computes whether item is inside,
  607.                      * outside, or overlapping an area. */
  608.     Tk_ItemPostscriptProc *postscriptProc;
  609.                     /* Procedure to write a Postscript
  610.                      * description for items of this
  611.                      * type. */
  612.     Tk_ItemScaleProc *scaleProc;    /* Procedure to rescale items of
  613.                      * this type. */
  614.     Tk_ItemTranslateProc *translateProc;/* Procedure to translate items of
  615.                      * this type. */
  616.     Tk_ItemIndexProc *indexProc;    /* Procedure to determine index of
  617.                      * indicated character.  NULL if
  618.                      * item doesn't support indexing. */
  619.     Tk_ItemCursorProc *icursorProc;    /* Procedure to set insert cursor pos.
  620.                      * to just before a given position. */
  621.     Tk_ItemSelectionProc *selectionProc;/* Procedure to return selection (in
  622.                      * STRING format) when it is in this
  623.                      * item. */
  624.     Tk_ItemInsertProc *insertProc;    /* Procedure to insert something into
  625.                      * an item. */
  626.     Tk_ItemDCharsProc *dCharsProc;    /* Procedure to delete characters
  627.                      * from an item. */
  628.     struct Tk_ItemType *nextPtr;    /* Used to link types together into
  629.                      * a list. */
  630. } Tk_ItemType;
  631.  
  632. /*
  633.  * The following structure provides information about the selection and
  634.  * the insertion cursor.  It is needed by only a few items, such as
  635.  * those that display text.  It is shared by the generic canvas code
  636.  * and the item-specific code, but most of the fields should be written
  637.  * only by the canvas generic code.
  638.  */
  639.  
  640. typedef struct Tk_CanvasTextInfo {
  641.     Tk_3DBorder selBorder;    /* Border and background for selected
  642.                  * characters.  Read-only to items.*/
  643.     int selBorderWidth;        /* Width of border around selection. 
  644.                  * Read-only to items. */
  645.     XColor *selFgColorPtr;    /* Foreground color for selected text.
  646.                  * Read-only to items. */
  647.     Tk_Item *selItemPtr;    /* Pointer to selected item.  NULL means
  648.                  * selection isn't in this canvas.
  649.                  * Writable by items. */
  650.     int selectFirst;        /* Index of first selected character. 
  651.                  * Writable by items. */
  652.     int selectLast;        /* Index of last selected character. 
  653.                  * Writable by items. */
  654.     Tk_Item *anchorItemPtr;    /* Item corresponding to "selectAnchor":
  655.                  * not necessarily selItemPtr.   Read-only
  656.                  * to items. */
  657.     int selectAnchor;        /* Fixed end of selection (i.e. "select to"
  658.                  * operation will use this as one end of the
  659.                  * selection).  Writable by items. */
  660.     Tk_3DBorder insertBorder;    /* Used to draw vertical bar for insertion
  661.                  * cursor.  Read-only to items. */
  662.     int insertWidth;        /* Total width of insertion cursor.  Read-only
  663.                  * to items. */
  664.     int insertBorderWidth;    /* Width of 3-D border around insert cursor.
  665.                  * Read-only to items. */
  666.     Tk_Item *focusItemPtr;    /* Item that currently has the input focus,
  667.                  * or NULL if no such item.  Read-only to
  668.                  * items.  */
  669.     int gotFocus;        /* Non-zero means that the canvas widget has
  670.                  * the input focus.  Read-only to items.*/
  671.     int cursorOn;        /* Non-zero means that an insertion cursor
  672.                  * should be displayed in focusItemPtr.
  673.                  * Read-only to items.*/
  674. } Tk_CanvasTextInfo;
  675.  
  676. /*
  677.  *--------------------------------------------------------------
  678.  *
  679.  * Procedure prototypes and structures used for managing images:
  680.  *
  681.  *--------------------------------------------------------------
  682.  */
  683.  
  684. typedef struct Tk_ImageType Tk_ImageType;
  685. typedef int (Tk_ImageCreateProc) _ANSI_ARGS_((Tcl_Interp *interp,
  686.     char *name, int argc, char **argv, Tk_ImageType *typePtr,
  687.     Tk_ImageMaster master, ClientData *masterDataPtr));
  688. typedef ClientData (Tk_ImageGetProc) _ANSI_ARGS_((Tk_Window tkwin,
  689.     ClientData masterData));
  690. typedef void (Tk_ImageDisplayProc) _ANSI_ARGS_((ClientData instanceData,
  691.     Display *display, Drawable drawable, int imageX, int imageY,
  692.     int width, int height, int drawableX, int drawableY));
  693. typedef void (Tk_ImageFreeProc) _ANSI_ARGS_((ClientData instanceData,
  694.     Display *display));
  695. typedef void (Tk_ImageDeleteProc) _ANSI_ARGS_((ClientData masterData));
  696. typedef void (Tk_ImageChangedProc) _ANSI_ARGS_((ClientData clientData,
  697.     int x, int y, int width, int height, int imageWidth,
  698.     int imageHeight));
  699.  
  700. /*
  701.  * The following structure represents a particular type of image
  702.  * (bitmap, xpm image, etc.).  It provides information common to
  703.  * all images of that type, such as the type name and a collection
  704.  * of procedures in the image manager that respond to various
  705.  * events.  Each image manager is represented by one of these
  706.  * structures.
  707.  */
  708.  
  709. struct Tk_ImageType {
  710.     char *name;            /* Name of image type. */
  711.     Tk_ImageCreateProc *createProc;
  712.                 /* Procedure to call to create a new image
  713.                  * of this type. */
  714.     Tk_ImageGetProc *getProc;    /* Procedure to call the first time
  715.                  * Tk_GetImage is called in a new way
  716.                  * (new visual or screen). */
  717.     Tk_ImageDisplayProc *displayProc;
  718.                 /* Call to draw image, in response to
  719.                  * Tk_RedrawImage calls. */
  720.     Tk_ImageFreeProc *freeProc;    /* Procedure to call whenever Tk_FreeImage
  721.                  * is called to release an instance of an
  722.                  * image. */
  723.     Tk_ImageDeleteProc *deleteProc;
  724.                 /* Procedure to call to delete image.  It
  725.                  * will not be called until after freeProc
  726.                  * has been called for each instance of the
  727.                  * image. */
  728.     struct Tk_ImageType *nextPtr;
  729.                 /* Next in list of all image types currently
  730.                  * known.  Filled in by Tk, not by image
  731.                  * manager. */
  732. };
  733.  
  734. /*
  735.  *--------------------------------------------------------------
  736.  *
  737.  * Additional definitions used to manage images of type "photo".
  738.  *
  739.  *--------------------------------------------------------------
  740.  */
  741.  
  742. /*
  743.  * The following type is used to identify a particular photo image
  744.  * to be manipulated:
  745.  */
  746.  
  747. typedef void *Tk_PhotoHandle;
  748.  
  749. /*
  750.  * The following structure describes a block of pixels in memory:
  751.  */
  752.  
  753. typedef struct Tk_PhotoImageBlock {
  754.     unsigned char *pixelPtr;    /* Pointer to the first pixel. */
  755.     int        width;        /* Width of block, in pixels. */
  756.     int        height;        /* Height of block, in pixels. */
  757.     int        pitch;        /* Address difference between corresponding
  758.                  * pixels in successive lines. */
  759.     int        pixelSize;    /* Address difference between successive
  760.                  * pixels in the same line. */
  761.     int        offset[3];    /* Address differences between the red, green
  762.                  * and blue components of the pixel and the
  763.                  * pixel as a whole. */
  764. } Tk_PhotoImageBlock;
  765.  
  766. /*
  767.  * Procedure prototypes and structures used in reading and
  768.  * writing photo images:
  769.  */
  770.  
  771. typedef struct Tk_PhotoImageFormat Tk_PhotoImageFormat;
  772. typedef int (Tk_ImageFileMatchProc) _ANSI_ARGS_((FILE *f, char *fileName,
  773.     char *formatString, int *widthPtr, int *heightPtr));
  774. typedef int (Tk_ImageStringMatchProc) _ANSI_ARGS_((char *string,
  775.     char *formatString, int *widthPtr, int *heightPtr));
  776. typedef int (Tk_ImageFileReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
  777.     FILE *f, char *fileName, char *formatString, Tk_PhotoHandle imageHandle,
  778.     int destX, int destY, int width, int height, int srcX, int srcY));
  779. typedef int (Tk_ImageStringReadProc) _ANSI_ARGS_((Tcl_Interp *interp,
  780.     char *string, char *formatString, Tk_PhotoHandle imageHandle,
  781.     int destX, int destY, int width, int height, int srcX, int srcY));
  782. typedef int (Tk_ImageFileWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
  783.     char *fileName, char *formatString, Tk_PhotoImageBlock *blockPtr));
  784. typedef int (Tk_ImageStringWriteProc) _ANSI_ARGS_((Tcl_Interp *interp,
  785.     Tcl_DString *dataPtr, char *formatString,
  786.     Tk_PhotoImageBlock *blockPtr));
  787.  
  788. /*
  789.  * The following structure represents a particular file format for
  790.  * storing images (e.g., PPM, GIF, JPEG, etc.).  It provides information
  791.  * to allow image files of that format to be recognized and read into
  792.  * a photo image.
  793.  */
  794.  
  795. struct Tk_PhotoImageFormat {
  796.     char *name;            /* Name of image file format */
  797.     Tk_ImageFileMatchProc *fileMatchProc;
  798.                 /* Procedure to call to determine whether
  799.                  * an image file matches this format. */
  800.     Tk_ImageStringMatchProc *stringMatchProc;
  801.                 /* Procedure to call to determine whether
  802.                  * the data in a string matches this format. */
  803.     Tk_ImageFileReadProc *fileReadProc;
  804.                 /* Procedure to call to read data from
  805.                  * an image file into a photo image. */
  806.     Tk_ImageStringReadProc *stringReadProc;
  807.                 /* Procedure to call to read data from
  808.                  * a string into a photo image. */
  809.     Tk_ImageFileWriteProc *fileWriteProc;
  810.                 /* Procedure to call to write data from
  811.                  * a photo image to a file. */
  812.     Tk_ImageStringWriteProc *stringWriteProc;
  813.                 /* Procedure to call to obtain a string
  814.                  * representation of the data in a photo
  815.                  * image.*/
  816.     struct Tk_PhotoImageFormat *nextPtr;
  817.                 /* Next in list of all photo image formats
  818.                  * currently known.  Filled in by Tk, not
  819.                  * by image format handler. */
  820. };
  821.  
  822. /*
  823.  *--------------------------------------------------------------
  824.  *
  825.  * The definitions below provide backward compatibility for
  826.  * functions and types related to event handling that used to
  827.  * be in Tk but have moved to Tcl.
  828.  *
  829.  *--------------------------------------------------------------
  830.  */
  831.  
  832. #define TK_READABLE        TCL_READABLE
  833. #define TK_WRITABLE        TCL_WRITABLE
  834. #define TK_EXCEPTION        TCL_EXCEPTION
  835.  
  836. #define TK_DONT_WAIT        TCL_DONT_WAIT
  837. #define TK_X_EVENTS        TCL_WINDOW_EVENTS
  838. #define TK_WINDOW_EVENTS    TCL_WINDOW_EVENTS
  839. #define TK_FILE_EVENTS        TCL_FILE_EVENTS
  840. #define TK_TIMER_EVENTS        TCL_TIMER_EVENTS
  841. #define TK_IDLE_EVENTS        TCL_IDLE_EVENTS
  842. #define TK_ALL_EVENTS        TCL_ALL_EVENTS
  843.  
  844. #define Tk_IdleProc        Tcl_IdleProc
  845. #define Tk_FileProc        Tcl_FileProc
  846. #define Tk_TimerProc        Tcl_TimerProc
  847. #define Tk_TimerToken        Tcl_TimerToken
  848.  
  849. #define Tk_BackgroundError    Tcl_BackgroundError
  850. #define Tk_CancelIdleCall    Tcl_CancelIdleCall
  851. #define Tk_CreateFileHandler(file,mask,proc,data) \
  852.     Tcl_CreateFileHandler(Tcl_GetFile((file),TCL_UNIX_FD),(mask),(proc),(data))
  853. #define Tk_CreateTimerHandler    Tcl_CreateTimerHandler
  854. #define Tk_DeleteFileHandler(file) \
  855.     Tcl_DeleteFileHandler(Tcl_GetFile((file),TCL_UNIX_FD))
  856. #define Tk_DeleteTimerHandler    Tcl_DeleteTimerHandler
  857. #define Tk_DoOneEvent        Tcl_DoOneEvent
  858. #define Tk_DoWhenIdle        Tcl_DoWhenIdle
  859. #define Tk_Sleep        Tcl_Sleep
  860.  
  861. /* Additional stuff that has moved to Tcl: */
  862.  
  863. #define Tk_AfterCmd        Tcl_AfterCmd
  864. #define Tk_EventuallyFree    Tcl_EventuallyFree
  865. #define Tk_FreeProc        Tcl_FreeProc
  866. #define Tk_Preserve        Tcl_Preserve
  867. #define Tk_Release        Tcl_Release
  868.  
  869. /*
  870.  *--------------------------------------------------------------
  871.  *
  872.  * Additional procedure types defined by Tk.
  873.  *
  874.  *--------------------------------------------------------------
  875.  */
  876.  
  877. typedef int (Tk_ErrorProc) _ANSI_ARGS_((ClientData clientData,
  878.     XErrorEvent *errEventPtr));
  879. typedef void (Tk_EventProc) _ANSI_ARGS_((ClientData clientData,
  880.     XEvent *eventPtr));
  881. typedef int (Tk_GenericProc) _ANSI_ARGS_((ClientData clientData,
  882.     XEvent *eventPtr));
  883. typedef int (Tk_GetSelProc) _ANSI_ARGS_((ClientData clientData,
  884.     Tcl_Interp *interp, char *portion));
  885. typedef void (Tk_LostSelProc) _ANSI_ARGS_((ClientData clientData));
  886. typedef Tk_RestrictAction (Tk_RestrictProc) _ANSI_ARGS_((
  887.     ClientData clientData, XEvent *eventPtr));
  888. typedef int (Tk_SelectionProc) _ANSI_ARGS_((ClientData clientData,
  889.     int offset, char *buffer, int maxBytes));
  890.  
  891. /*
  892.  *--------------------------------------------------------------
  893.  *
  894.  * Exported procedures and variables.
  895.  *
  896.  *--------------------------------------------------------------
  897.  */
  898.  
  899. EXTERN XColor *        Tk_3DBorderColor _ANSI_ARGS_((Tk_3DBorder border));
  900. EXTERN GC        Tk_3DBorderGC _ANSI_ARGS_((Tk_Window tkwin,
  901.                 Tk_3DBorder border, int which));
  902. EXTERN void        Tk_3DHorizontalBevel _ANSI_ARGS_((Tk_Window tkwin,
  903.                 Drawable drawable, Tk_3DBorder border, int x,
  904.                 int y, int width, int height, int leftIn,
  905.                 int rightIn, int topBevel, int relief));
  906. EXTERN void        Tk_3DVerticalBevel _ANSI_ARGS_((Tk_Window tkwin,
  907.                 Drawable drawable, Tk_3DBorder border, int x,
  908.                 int y, int width, int height, int leftBevel,
  909.                 int relief));
  910. EXTERN void        Tk_AddOption _ANSI_ARGS_((Tk_Window tkwin, char *name,
  911.                 char *value, int priority));
  912. EXTERN void        Tk_BindEvent _ANSI_ARGS_((Tk_BindingTable bindingTable,
  913.                 XEvent *eventPtr, Tk_Window tkwin, int numObjects,
  914.                 ClientData *objectPtr));
  915. EXTERN void        Tk_CanvasDrawableCoords _ANSI_ARGS_((Tk_Canvas canvas,
  916.                 double x, double y, short *drawableXPtr,
  917.                 short *drawableYPtr));
  918. EXTERN void        Tk_CanvasEventuallyRedraw _ANSI_ARGS_((
  919.                 Tk_Canvas canvas, int x1, int y1, int x2,
  920.                 int y2));
  921. EXTERN int        Tk_CanvasGetCoord _ANSI_ARGS_((Tcl_Interp *interp,
  922.                 Tk_Canvas canvas, char *string,
  923.                 double *doublePtr));
  924. EXTERN Tk_CanvasTextInfo *Tk_CanvasGetTextInfo _ANSI_ARGS_((Tk_Canvas canvas));
  925. EXTERN int        Tk_CanvasPsBitmap _ANSI_ARGS_((Tcl_Interp *interp,
  926.                 Tk_Canvas canvas, Pixmap bitmap, int x, int y,
  927.                 int width, int height));
  928. EXTERN int        Tk_CanvasPsColor _ANSI_ARGS_((Tcl_Interp *interp,
  929.                 Tk_Canvas canvas, XColor *colorPtr));
  930. EXTERN int        Tk_CanvasPsFont _ANSI_ARGS_((Tcl_Interp *interp,
  931.                 Tk_Canvas canvas, XFontStruct *fontStructPtr));
  932. EXTERN void        Tk_CanvasPsPath _ANSI_ARGS_((Tcl_Interp *interp,
  933.                 Tk_Canvas canvas, double *coordPtr, int numPoints));
  934. EXTERN int        Tk_CanvasPsStipple _ANSI_ARGS_((Tcl_Interp *interp,
  935.                 Tk_Canvas canvas, Pixmap bitmap));
  936. EXTERN double        Tk_CanvasPsY _ANSI_ARGS_((Tk_Canvas canvas, double y));
  937. EXTERN void        Tk_CanvasSetStippleOrigin _ANSI_ARGS_((
  938.                 Tk_Canvas canvas, GC gc));
  939. EXTERN int        Tk_CanvasTagsParseProc _ANSI_ARGS_((
  940.                 ClientData clientData, Tcl_Interp *interp,
  941.                 Tk_Window tkwin, char *value, char *widgRec,
  942.                 int offset));
  943. EXTERN char *        Tk_CanvasTagsPrintProc _ANSI_ARGS_((
  944.                 ClientData clientData, Tk_Window tkwin,
  945.                 char *widgRec, int offset,
  946.                 Tcl_FreeProc **freeProcPtr));
  947. EXTERN Tk_Window    Tk_CanvasTkwin _ANSI_ARGS_((Tk_Canvas canvas));
  948. EXTERN void        Tk_CanvasWindowCoords _ANSI_ARGS_((Tk_Canvas canvas,
  949.                 double x, double y, short *screenXPtr,
  950.                 short *screenYPtr));
  951. EXTERN void        Tk_ChangeWindowAttributes _ANSI_ARGS_((Tk_Window tkwin,
  952.                 unsigned long valueMask,
  953.                 XSetWindowAttributes *attsPtr));
  954. EXTERN void        Tk_ClearSelection _ANSI_ARGS_((Tk_Window tkwin,
  955.                 Atom selection));
  956. EXTERN int        Tk_ClipboardAppend _ANSI_ARGS_((Tcl_Interp *interp,
  957.                 Tk_Window tkwin, Atom target, Atom format,
  958.                 char* buffer));
  959. EXTERN int        Tk_ClipboardClear _ANSI_ARGS_((Tcl_Interp *interp,
  960.                 Tk_Window tkwin));
  961. EXTERN int        Tk_ConfigureInfo _ANSI_ARGS_((Tcl_Interp *interp,
  962.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  963.                 char *widgRec, char *argvName, int flags));
  964. EXTERN int        Tk_ConfigureValue _ANSI_ARGS_((Tcl_Interp *interp,
  965.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  966.                 char *widgRec, char *argvName, int flags));
  967. EXTERN int        Tk_ConfigureWidget _ANSI_ARGS_((Tcl_Interp *interp,
  968.                 Tk_Window tkwin, Tk_ConfigSpec *specs,
  969.                 int argc, char **argv, char *widgRec,
  970.                 int flags));
  971. EXTERN void        Tk_ConfigureWindow _ANSI_ARGS_((Tk_Window tkwin,
  972.                 unsigned int valueMask, XWindowChanges *valuePtr));
  973. EXTERN Tk_Window    Tk_CoordsToWindow _ANSI_ARGS_((int rootX, int rootY,
  974.                 Tk_Window tkwin));
  975. #ifdef STk_CODE
  976. EXTERN unsigned long    Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp *interp,
  977.                 Tk_BindingTable bindingTable, ClientData object,
  978.                 char *eventString, char *command, char *str1, 
  979.                 char *str2));
  980. #else
  981. EXTERN unsigned long    Tk_CreateBinding _ANSI_ARGS_((Tcl_Interp *interp,
  982.                 Tk_BindingTable bindingTable, ClientData object,
  983.                 char *eventString, char *command, int append));
  984. #endif
  985. EXTERN Tk_BindingTable    Tk_CreateBindingTable _ANSI_ARGS_((Tcl_Interp *interp));
  986. EXTERN Tk_ErrorHandler    Tk_CreateErrorHandler _ANSI_ARGS_((Display *display,
  987.                 int errNum, int request, int minorCode,
  988.                 Tk_ErrorProc *errorProc, ClientData clientData));
  989. EXTERN void        Tk_CreateEventHandler _ANSI_ARGS_((Tk_Window token,
  990.                 unsigned long mask, Tk_EventProc *proc,
  991.                 ClientData clientData));
  992. EXTERN void        Tk_CreateGenericHandler _ANSI_ARGS_((
  993.                 Tk_GenericProc *proc, ClientData clientData));
  994. EXTERN void        Tk_CreateImageType _ANSI_ARGS_((
  995.                 Tk_ImageType *typePtr));
  996. EXTERN void        Tk_CreateItemType _ANSI_ARGS_((Tk_ItemType *typePtr));
  997. EXTERN void        Tk_CreatePhotoImageFormat _ANSI_ARGS_((
  998.                 Tk_PhotoImageFormat *formatPtr));
  999. EXTERN void        Tk_CreateSelHandler _ANSI_ARGS_((Tk_Window tkwin,
  1000.                 Atom selection, Atom target,
  1001.                 Tk_SelectionProc *proc, ClientData clientData,
  1002.                 Atom format));
  1003. EXTERN Tk_Window    Tk_CreateWindow _ANSI_ARGS_((Tcl_Interp *interp,
  1004.                 Tk_Window parent, char *name, char *screenName));
  1005. EXTERN Tk_Window    Tk_CreateWindowFromPath _ANSI_ARGS_((
  1006.                 Tcl_Interp *interp, Tk_Window tkwin,
  1007.                 char *pathName, char *screenName));
  1008. EXTERN int        Tk_DefineBitmap _ANSI_ARGS_((Tcl_Interp *interp,
  1009.                 Tk_Uid name, char *source, int width,
  1010.                 int height));
  1011. EXTERN void        Tk_DefineCursor _ANSI_ARGS_((Tk_Window window,
  1012.                 Tk_Cursor cursor));
  1013. EXTERN void        Tk_DeleteAllBindings _ANSI_ARGS_((
  1014.                 Tk_BindingTable bindingTable, ClientData object));
  1015. EXTERN int        Tk_DeleteBinding _ANSI_ARGS_((Tcl_Interp *interp,
  1016.                 Tk_BindingTable bindingTable, ClientData object,
  1017.                 char *eventString));
  1018. EXTERN void        Tk_DeleteBindingTable _ANSI_ARGS_((
  1019.                 Tk_BindingTable bindingTable));
  1020. EXTERN void        Tk_DeleteErrorHandler _ANSI_ARGS_((
  1021.                 Tk_ErrorHandler handler));
  1022. EXTERN void        Tk_DeleteEventHandler _ANSI_ARGS_((Tk_Window token,
  1023.                 unsigned long mask, Tk_EventProc *proc,
  1024.                 ClientData clientData));
  1025. EXTERN void        Tk_DeleteGenericHandler _ANSI_ARGS_((
  1026.                 Tk_GenericProc *proc, ClientData clientData));
  1027. EXTERN void        Tk_DeleteImage _ANSI_ARGS_((Tcl_Interp *interp,
  1028.                 char *name));
  1029. EXTERN void        Tk_DeleteSelHandler _ANSI_ARGS_((Tk_Window tkwin,
  1030.                 Atom selection, Atom target));
  1031. EXTERN void        Tk_DestroyWindow _ANSI_ARGS_((Tk_Window tkwin));
  1032. EXTERN char *        Tk_DisplayName _ANSI_ARGS_((Tk_Window tkwin));
  1033. EXTERN void        Tk_Draw3DPolygon _ANSI_ARGS_((Tk_Window tkwin,
  1034.                 Drawable drawable, Tk_3DBorder border,
  1035.                 XPoint *pointPtr, int numPoints, int borderWidth,
  1036.                 int leftRelief));
  1037. EXTERN void        Tk_Draw3DRectangle _ANSI_ARGS_((Tk_Window tkwin,
  1038.                 Drawable drawable, Tk_3DBorder border, int x,
  1039.                 int y, int width, int height, int borderWidth,
  1040.                 int relief));
  1041. EXTERN void        Tk_DrawFocusHighlight _ANSI_ARGS_((Tk_Window tkwin,
  1042.                 GC gc, int width, Drawable drawable));
  1043. EXTERN void        Tk_Fill3DPolygon _ANSI_ARGS_((Tk_Window tkwin,
  1044.                 Drawable drawable, Tk_3DBorder border,
  1045.                 XPoint *pointPtr, int numPoints, int borderWidth,
  1046.                 int leftRelief));
  1047. EXTERN void        Tk_Fill3DRectangle _ANSI_ARGS_((Tk_Window tkwin,
  1048.                 Drawable drawable, Tk_3DBorder border, int x,
  1049.                 int y, int width, int height, int borderWidth,
  1050.                 int relief));
  1051. EXTERN Tk_PhotoHandle    Tk_FindPhoto _ANSI_ARGS_((char *imageName));
  1052. EXTERN void        Tk_Free3DBorder _ANSI_ARGS_((Tk_3DBorder border));
  1053. EXTERN void        Tk_FreeBitmap _ANSI_ARGS_((Display *display,
  1054.                 Pixmap bitmap));
  1055. EXTERN void        Tk_FreeColor _ANSI_ARGS_((XColor *colorPtr));
  1056. EXTERN void        Tk_FreeColormap _ANSI_ARGS_((Display *display,
  1057.                 Colormap colormap));
  1058. EXTERN void        Tk_FreeCursor _ANSI_ARGS_((Display *display,
  1059.                 Tk_Cursor cursor));
  1060. EXTERN void        Tk_FreeFontStruct _ANSI_ARGS_((
  1061.                 XFontStruct *fontStructPtr));
  1062. EXTERN void        Tk_FreeGC _ANSI_ARGS_((Display *display, GC gc));
  1063. EXTERN void        Tk_FreeImage _ANSI_ARGS_((Tk_Image image));
  1064. EXTERN void        Tk_FreeOptions _ANSI_ARGS_((Tk_ConfigSpec *specs,
  1065.                 char *widgRec, Display *display, int needFlags));
  1066. EXTERN void        Tk_FreePixmap _ANSI_ARGS_((Display *display,
  1067.                 Pixmap pixmap));
  1068. EXTERN void        Tk_FreeXId _ANSI_ARGS_((Display *display, XID xid));
  1069. EXTERN GC        Tk_GCForColor _ANSI_ARGS_((XColor *colorPtr,
  1070.                 Drawable drawable));
  1071. EXTERN void        Tk_GeometryRequest _ANSI_ARGS_((Tk_Window tkwin,
  1072.                 int reqWidth,  int reqHeight));
  1073. EXTERN Tk_3DBorder    Tk_Get3DBorder _ANSI_ARGS_((Tcl_Interp *interp,
  1074.                 Tk_Window tkwin, Tk_Uid colorName));
  1075. EXTERN void        Tk_GetAllBindings _ANSI_ARGS_((Tcl_Interp *interp,
  1076.                 Tk_BindingTable bindingTable, ClientData object));
  1077. EXTERN int        Tk_GetAnchor _ANSI_ARGS_((Tcl_Interp *interp,
  1078.                 char *string, Tk_Anchor *anchorPtr));
  1079. EXTERN char *        Tk_GetAtomName _ANSI_ARGS_((Tk_Window tkwin,
  1080.                 Atom atom));
  1081. EXTERN char *        Tk_GetBinding _ANSI_ARGS_((Tcl_Interp *interp,
  1082.                 Tk_BindingTable bindingTable, ClientData object,
  1083.                 char *eventString));
  1084. EXTERN Pixmap        Tk_GetBitmap _ANSI_ARGS_((Tcl_Interp *interp,
  1085.                 Tk_Window tkwin, Tk_Uid string));
  1086. EXTERN Pixmap        Tk_GetBitmapFromData _ANSI_ARGS_((Tcl_Interp *interp,
  1087.                 Tk_Window tkwin, char *source,
  1088.                 int width, int height));
  1089. EXTERN int        Tk_GetCapStyle _ANSI_ARGS_((Tcl_Interp *interp,
  1090.                 char *string, int *capPtr));
  1091. EXTERN XColor *        Tk_GetColor _ANSI_ARGS_((Tcl_Interp *interp,
  1092.                 Tk_Window tkwin, Tk_Uid name));
  1093. EXTERN XColor *        Tk_GetColorByValue _ANSI_ARGS_((Tk_Window tkwin,
  1094.                 XColor *colorPtr));
  1095. EXTERN Colormap        Tk_GetColormap _ANSI_ARGS_((Tcl_Interp *interp,
  1096.                 Tk_Window tkwin, char *string));
  1097. EXTERN Tk_Cursor    Tk_GetCursor _ANSI_ARGS_((Tcl_Interp *interp,
  1098.                 Tk_Window tkwin, Tk_Uid string));
  1099. EXTERN Tk_Cursor    Tk_GetCursorFromData _ANSI_ARGS_((Tcl_Interp *interp,
  1100.                 Tk_Window tkwin, char *source, char *mask,
  1101.                 int width, int height, int xHot, int yHot,
  1102.                 Tk_Uid fg, Tk_Uid bg));
  1103. EXTERN XFontStruct *    Tk_GetFontStruct _ANSI_ARGS_((Tcl_Interp *interp,
  1104.                 Tk_Window tkwin, Tk_Uid name));
  1105. EXTERN GC        Tk_GetGC _ANSI_ARGS_((Tk_Window tkwin,
  1106.                 unsigned long valueMask, XGCValues *valuePtr));
  1107. EXTERN Tk_Image        Tk_GetImage _ANSI_ARGS_((Tcl_Interp *interp,
  1108.                 Tk_Window tkwin, char *name,
  1109.                 Tk_ImageChangedProc *changeProc,
  1110.                 ClientData clientData));
  1111. EXTERN Tk_ItemType *    Tk_GetItemTypes _ANSI_ARGS_((void));
  1112. EXTERN int        Tk_GetJoinStyle _ANSI_ARGS_((Tcl_Interp *interp,
  1113.                 char *string, int *joinPtr));
  1114. EXTERN int        Tk_GetJustify _ANSI_ARGS_((Tcl_Interp *interp,
  1115.                 char *string, Tk_Justify *justifyPtr));
  1116. EXTERN int        Tk_GetNumMainWindows _ANSI_ARGS_((void));
  1117. EXTERN Tk_Uid        Tk_GetOption _ANSI_ARGS_((Tk_Window tkwin, char *name,
  1118.                 char *className));
  1119. EXTERN int        Tk_GetPixels _ANSI_ARGS_((Tcl_Interp *interp,
  1120.                 Tk_Window tkwin, char *string, int *intPtr));
  1121. EXTERN Pixmap        Tk_GetPixmap _ANSI_ARGS_((Display *display, Drawable d,
  1122.                 int width, int height, int depth));
  1123. EXTERN int        Tk_GetRelief _ANSI_ARGS_((Tcl_Interp *interp,
  1124.                 char *name, int *reliefPtr));
  1125. EXTERN void        Tk_GetRootCoords _ANSI_ARGS_ ((Tk_Window tkwin,
  1126.                 int *xPtr, int *yPtr));
  1127. EXTERN int        Tk_GetScrollInfo _ANSI_ARGS_((Tcl_Interp *interp,
  1128.                 int argc, char **argv, double *dblPtr,
  1129.                 int *intPtr));
  1130. EXTERN int        Tk_GetScreenMM _ANSI_ARGS_((Tcl_Interp *interp,
  1131.                 Tk_Window tkwin, char *string, double *doublePtr));
  1132. EXTERN int        Tk_GetSelection _ANSI_ARGS_((Tcl_Interp *interp,
  1133.                 Tk_Window tkwin, Atom selection, Atom target,
  1134.                 Tk_GetSelProc *proc, ClientData clientData));
  1135. EXTERN Tk_Uid        Tk_GetUid _ANSI_ARGS_((char *string));
  1136. EXTERN Visual *        Tk_GetVisual _ANSI_ARGS_((Tcl_Interp *interp,
  1137.                 Tk_Window tkwin, char *string, int *depthPtr,
  1138.                 Colormap *colormapPtr));
  1139. EXTERN void        Tk_GetVRootGeometry _ANSI_ARGS_((Tk_Window tkwin,
  1140.                 int *xPtr, int *yPtr, int *widthPtr,
  1141.                 int *heightPtr));
  1142. EXTERN int        Tk_Grab _ANSI_ARGS_((Tcl_Interp *interp,
  1143.                 Tk_Window tkwin, int grabGlobal));
  1144. EXTERN void        Tk_HandleEvent _ANSI_ARGS_((XEvent *eventPtr));
  1145. EXTERN Tk_Window          Tk_IdToWindow _ANSI_ARGS_((Display *display,
  1146.                 Window window));
  1147. EXTERN void        Tk_ImageChanged _ANSI_ARGS_((
  1148.                 Tk_ImageMaster master, int x, int y,
  1149.                 int width, int height, int imageWidth,
  1150.                 int imageHeight));
  1151. EXTERN int        Tk_Init _ANSI_ARGS_((Tcl_Interp *interp));
  1152. EXTERN Atom        Tk_InternAtom _ANSI_ARGS_((Tk_Window tkwin,
  1153.                 char *name));
  1154. EXTERN void        Tk_Main _ANSI_ARGS_((int argc, char **argv,
  1155.                 Tcl_AppInitProc *appInitProc));
  1156. EXTERN void        Tk_MainLoop _ANSI_ARGS_((void));
  1157. EXTERN void        Tk_MaintainGeometry _ANSI_ARGS_((Tk_Window slave,
  1158.                 Tk_Window master, int x, int y, int width,
  1159.                 int height));
  1160. EXTERN Tk_Window    Tk_MainWindow _ANSI_ARGS_((Tcl_Interp *interp));
  1161. EXTERN void        Tk_MakeWindowExist _ANSI_ARGS_((Tk_Window tkwin));
  1162. EXTERN void        Tk_ManageGeometry _ANSI_ARGS_((Tk_Window tkwin,
  1163.                 Tk_GeomMgr *mgrPtr, ClientData clientData));
  1164. EXTERN void        Tk_MapWindow _ANSI_ARGS_((Tk_Window tkwin));
  1165. EXTERN void        Tk_MoveResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
  1166.                 int x, int y, int width, int height));
  1167. EXTERN void        Tk_MoveWindow _ANSI_ARGS_((Tk_Window tkwin, int x,
  1168.                 int y));
  1169. EXTERN void        Tk_MoveToplevelWindow _ANSI_ARGS_((Tk_Window tkwin,
  1170.                 int x, int y));
  1171. EXTERN char *        Tk_NameOf3DBorder _ANSI_ARGS_((Tk_3DBorder border));
  1172. EXTERN char *        Tk_NameOfAnchor _ANSI_ARGS_((Tk_Anchor anchor));
  1173. EXTERN char *        Tk_NameOfBitmap _ANSI_ARGS_((Display *display,
  1174.                 Pixmap bitmap));
  1175. EXTERN char *        Tk_NameOfCapStyle _ANSI_ARGS_((int cap));
  1176. EXTERN char *        Tk_NameOfColor _ANSI_ARGS_((XColor *colorPtr));
  1177. EXTERN char *        Tk_NameOfCursor _ANSI_ARGS_((Display *display,
  1178.                 Tk_Cursor cursor));
  1179. EXTERN char *        Tk_NameOfFontStruct _ANSI_ARGS_((
  1180.                 XFontStruct *fontStructPtr));
  1181. EXTERN char *        Tk_NameOfImage _ANSI_ARGS_((
  1182.                 Tk_ImageMaster imageMaster));
  1183. EXTERN char *        Tk_NameOfJoinStyle _ANSI_ARGS_((int join));
  1184. EXTERN char *        Tk_NameOfJustify _ANSI_ARGS_((Tk_Justify justify));
  1185. EXTERN char *        Tk_NameOfRelief _ANSI_ARGS_((int relief));
  1186. EXTERN Tk_Window    Tk_NameToWindow _ANSI_ARGS_((Tcl_Interp *interp,
  1187.                 char *pathName, Tk_Window tkwin));
  1188. EXTERN void        Tk_OwnSelection _ANSI_ARGS_((Tk_Window tkwin,
  1189.                 Atom selection, Tk_LostSelProc *proc,
  1190.                 ClientData clientData));
  1191. EXTERN int        Tk_ParseArgv _ANSI_ARGS_((Tcl_Interp *interp,
  1192.                 Tk_Window tkwin, int *argcPtr, char **argv,
  1193.                 Tk_ArgvInfo *argTable, int flags));
  1194. EXTERN void        Tk_PhotoPutBlock _ANSI_ARGS_((Tk_PhotoHandle handle,
  1195.                 Tk_PhotoImageBlock *blockPtr, int x, int y,
  1196.                 int width, int height));
  1197. EXTERN void        Tk_PhotoPutZoomedBlock _ANSI_ARGS_((
  1198.                 Tk_PhotoHandle handle,
  1199.                 Tk_PhotoImageBlock *blockPtr, int x, int y,
  1200.                 int width, int height, int zoomX, int zoomY,
  1201.                 int subsampleX, int subsampleY));
  1202. EXTERN int        Tk_PhotoGetImage _ANSI_ARGS_((Tk_PhotoHandle handle,
  1203.                 Tk_PhotoImageBlock *blockPtr));
  1204. EXTERN void        Tk_PhotoBlank _ANSI_ARGS_((Tk_PhotoHandle handle));
  1205. EXTERN void        Tk_PhotoExpand _ANSI_ARGS_((Tk_PhotoHandle handle,
  1206.                 int width, int height ));
  1207. EXTERN void        Tk_PhotoGetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
  1208.                 int *widthPtr, int *heightPtr));
  1209. EXTERN void        Tk_PhotoSetSize _ANSI_ARGS_((Tk_PhotoHandle handle,
  1210.                 int width, int height));
  1211. EXTERN void        Tk_PreserveColormap _ANSI_ARGS_((Display *display,
  1212.                 Colormap colormap));
  1213. EXTERN void        Tk_QueueWindowEvent _ANSI_ARGS_((XEvent *eventPtr,
  1214.                 Tcl_QueuePosition position));
  1215. EXTERN void        Tk_RedrawImage _ANSI_ARGS_((Tk_Image image, int imageX,
  1216.                 int imageY, int width, int height,
  1217.                 Drawable drawable, int drawableX, int drawableY));
  1218. EXTERN void        Tk_ResizeWindow _ANSI_ARGS_((Tk_Window tkwin,
  1219.                 int width, int height));
  1220. EXTERN int        Tk_RestackWindow _ANSI_ARGS_((Tk_Window tkwin,
  1221.                 int aboveBelow, Tk_Window other));
  1222. EXTERN Tk_RestrictProc *Tk_RestrictEvents _ANSI_ARGS_((Tk_RestrictProc *proc,
  1223.                 ClientData arg, ClientData *prevArgPtr));
  1224. EXTERN char *        Tk_SetAppName _ANSI_ARGS_((Tk_Window tkwin,
  1225.                 char *name));
  1226. EXTERN void        Tk_SetBackgroundFromBorder _ANSI_ARGS_((
  1227.                 Tk_Window tkwin, Tk_3DBorder border));
  1228. EXTERN void        Tk_SetClass _ANSI_ARGS_((Tk_Window tkwin,
  1229.                 char *className));
  1230. EXTERN void        Tk_SetGrid _ANSI_ARGS_((Tk_Window tkwin,
  1231.                 int reqWidth, int reqHeight, int gridWidth,
  1232.                 int gridHeight));
  1233. EXTERN void        Tk_SetInternalBorder _ANSI_ARGS_((Tk_Window tkwin,
  1234.                 int width));
  1235. EXTERN void        Tk_SetWindowBackground _ANSI_ARGS_((Tk_Window tkwin,
  1236.                 unsigned long pixel));
  1237. EXTERN void        Tk_SetWindowBackgroundPixmap _ANSI_ARGS_((
  1238.                 Tk_Window tkwin, Pixmap pixmap));
  1239. EXTERN void        Tk_SetWindowBorder _ANSI_ARGS_((Tk_Window tkwin,
  1240.                 unsigned long pixel));
  1241. EXTERN void        Tk_SetWindowBorderWidth _ANSI_ARGS_((Tk_Window tkwin,
  1242.                 int width));
  1243. EXTERN void        Tk_SetWindowBorderPixmap _ANSI_ARGS_((Tk_Window tkwin,
  1244.                 Pixmap pixmap));
  1245. EXTERN void        Tk_SetWindowColormap _ANSI_ARGS_((Tk_Window tkwin,
  1246.                 Colormap colormap));
  1247. EXTERN int        Tk_SetWindowVisual _ANSI_ARGS_((Tk_Window tkwin,
  1248.                 Visual *visual, int depth,
  1249.                 Colormap colormap));
  1250. EXTERN void        Tk_SizeOfBitmap _ANSI_ARGS_((Display *display,
  1251.                 Pixmap bitmap, int *widthPtr,
  1252.                 int *heightPtr));
  1253. EXTERN void        Tk_SizeOfImage _ANSI_ARGS_((Tk_Image image,
  1254.                 int *widthPtr, int *heightPtr));
  1255. EXTERN int        Tk_StrictMotif _ANSI_ARGS_((Tk_Window tkwin));
  1256. EXTERN void        Tk_UndefineCursor _ANSI_ARGS_((Tk_Window window));
  1257. EXTERN void        Tk_Ungrab _ANSI_ARGS_((Tk_Window tkwin));
  1258. EXTERN void        Tk_UnmaintainGeometry _ANSI_ARGS_((Tk_Window slave,
  1259.                 Tk_Window master));
  1260. EXTERN void        Tk_UnmapWindow _ANSI_ARGS_((Tk_Window tkwin));
  1261. EXTERN void        Tk_UnsetGrid _ANSI_ARGS_((Tk_Window tkwin));
  1262.  
  1263. /*
  1264.  * Tcl commands exported by Tk:
  1265.  */
  1266.  
  1267. EXTERN int        Tk_AfterCmd _ANSI_ARGS_((ClientData clientData,
  1268.                 Tcl_Interp *interp, int argc, char **argv));
  1269. EXTERN int        Tk_BellCmd _ANSI_ARGS_((ClientData clientData,
  1270.                 Tcl_Interp *interp, int argc, char **argv));
  1271. EXTERN int        Tk_BindCmd _ANSI_ARGS_((ClientData clientData,
  1272.                 Tcl_Interp *interp, int argc, char **argv));
  1273. EXTERN int        Tk_BindtagsCmd _ANSI_ARGS_((ClientData clientData,
  1274.                 Tcl_Interp *interp, int argc, char **argv));
  1275. EXTERN int        Tk_ButtonCmd _ANSI_ARGS_((ClientData clientData,
  1276.                 Tcl_Interp *interp, int argc, char **argv));
  1277. EXTERN int        Tk_CanvasCmd _ANSI_ARGS_((ClientData clientData,
  1278.                 Tcl_Interp *interp, int argc, char **argv));
  1279. EXTERN int        Tk_CheckbuttonCmd _ANSI_ARGS_((ClientData clientData,
  1280.                 Tcl_Interp *interp, int argc, char **argv));
  1281. EXTERN int        Tk_ClipboardCmd _ANSI_ARGS_((ClientData clientData,
  1282.                 Tcl_Interp *interp, int argc, char **argv));
  1283. EXTERN int        Tk_DestroyCmd _ANSI_ARGS_((ClientData clientData,
  1284.                 Tcl_Interp *interp, int argc, char **argv));
  1285. EXTERN int        Tk_EntryCmd _ANSI_ARGS_((ClientData clientData,
  1286.                 Tcl_Interp *interp, int argc, char **argv));
  1287. EXTERN int        Tk_FileeventCmd _ANSI_ARGS_((ClientData clientData,
  1288.                 Tcl_Interp *interp, int argc, char **argv));
  1289. EXTERN int        Tk_FrameCmd _ANSI_ARGS_((ClientData clientData,
  1290.                 Tcl_Interp *interp, int argc, char **argv));
  1291. EXTERN int        Tk_FocusCmd _ANSI_ARGS_((ClientData clientData,
  1292.                 Tcl_Interp *interp, int argc, char **argv));
  1293. EXTERN int        Tk_GrabCmd _ANSI_ARGS_((ClientData clientData,
  1294.                 Tcl_Interp *interp, int argc, char **argv));
  1295. EXTERN int        Tk_GridCmd _ANSI_ARGS_((ClientData clientData,
  1296.                 Tcl_Interp *interp, int argc, char **argv));
  1297. EXTERN int        Tk_ImageCmd _ANSI_ARGS_((ClientData clientData,
  1298.                 Tcl_Interp *interp, int argc, char **argv));
  1299. EXTERN int        Tk_LabelCmd _ANSI_ARGS_((ClientData clientData,
  1300.                 Tcl_Interp *interp, int argc, char **argv));
  1301. EXTERN int        Tk_ListboxCmd _ANSI_ARGS_((ClientData clientData,
  1302.                 Tcl_Interp *interp, int argc, char **argv));
  1303. EXTERN int        Tk_LowerCmd _ANSI_ARGS_((ClientData clientData,
  1304.                 Tcl_Interp *interp, int argc, char **argv));
  1305. EXTERN int        Tk_MenuCmd _ANSI_ARGS_((ClientData clientData,
  1306.                 Tcl_Interp *interp, int argc, char **argv));
  1307. EXTERN int        Tk_MenubuttonCmd _ANSI_ARGS_((ClientData clientData,
  1308.                 Tcl_Interp *interp, int argc, char **argv));
  1309. EXTERN int        Tk_MessageCmd _ANSI_ARGS_((ClientData clientData,
  1310.                 Tcl_Interp *interp, int argc, char **argv));
  1311. EXTERN int        Tk_OptionCmd _ANSI_ARGS_((ClientData clientData,
  1312.                 Tcl_Interp *interp, int argc, char **argv));
  1313. EXTERN int        Tk_PackCmd _ANSI_ARGS_((ClientData clientData,
  1314.                 Tcl_Interp *interp, int argc, char **argv));
  1315. EXTERN int        Tk_PlaceCmd _ANSI_ARGS_((ClientData clientData,
  1316.                 Tcl_Interp *interp, int argc, char **argv));
  1317. EXTERN int        Tk_RadiobuttonCmd _ANSI_ARGS_((ClientData clientData,
  1318.                 Tcl_Interp *interp, int argc, char **argv));
  1319. EXTERN int        Tk_RaiseCmd _ANSI_ARGS_((ClientData clientData,
  1320.                 Tcl_Interp *interp, int argc, char **argv));
  1321. EXTERN int        Tk_ScaleCmd _ANSI_ARGS_((ClientData clientData,
  1322.                 Tcl_Interp *interp, int argc, char **argv));
  1323. EXTERN int        Tk_ScrollbarCmd _ANSI_ARGS_((ClientData clientData,
  1324.                 Tcl_Interp *interp, int argc, char **argv));
  1325. EXTERN int        Tk_SelectionCmd _ANSI_ARGS_((ClientData clientData,
  1326.                 Tcl_Interp *interp, int argc, char **argv));
  1327. EXTERN int        Tk_SendCmd _ANSI_ARGS_((ClientData clientData,
  1328.                 Tcl_Interp *interp, int argc, char **argv));
  1329. EXTERN int        Tk_TextCmd _ANSI_ARGS_((ClientData clientData,
  1330.                 Tcl_Interp *interp, int argc, char **argv));
  1331. EXTERN int        Tk_TkCmd _ANSI_ARGS_((ClientData clientData,
  1332.                 Tcl_Interp *interp, int argc, char **argv));
  1333. EXTERN int        Tk_TkwaitCmd _ANSI_ARGS_((ClientData clientData,
  1334.                 Tcl_Interp *interp, int argc, char **argv));
  1335. EXTERN int        Tk_ToplevelCmd _ANSI_ARGS_((ClientData clientData,
  1336.                 Tcl_Interp *interp, int argc, char **argv));
  1337. EXTERN int        Tk_UpdateCmd _ANSI_ARGS_((ClientData clientData,
  1338.                 Tcl_Interp *interp, int argc, char **argv));
  1339. EXTERN int        Tk_WinfoCmd _ANSI_ARGS_((ClientData clientData,
  1340.                 Tcl_Interp *interp, int argc, char **argv));
  1341. EXTERN int        Tk_WmCmd _ANSI_ARGS_((ClientData clientData,
  1342.                 Tcl_Interp *interp, int argc, char **argv));
  1343.  
  1344. #endif /* _TK */
  1345.